package cn.yitun.chat.yitunservermanagecore.general.bridge.auth.annotation;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * date 2018-07-04 15:28:04
 * 权限注解
 * 目前确定有两组方式
 * 一为perms xx:xx:xx格式形似shiro
 * 二为填写了具体的urlPath和superUrlPath
 * 若两种都有，则都会匹配，但以第二种优先匹配
 * @author yitun
 * @since
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface PermissionMapping {
	//名称
	String name();
	// xx:xx:xx 格式权限
	String perms() default "";
	//是否拦截  默认拦截
	boolean isIntercept() default true;

	Type type() default Type.function;
	
	enum Type {

		/**
		 * 菜单类型（用户登录后在页面显示的导航菜单）
		 */
		//目录
		list(0),
		//菜单
		menu(1),
		/*
		 * 功能类型（在进入业务页面时的保存、新增、删除等操作）
		 */
		//按钮
		function(2);

		private final int value;

		Type(int value) {
			this.value = value;
		}

		public int value() {
			return this.value;
		}
	}
}

